<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // Promise
        // Promise是异步编程的一种解决方案，比传统方案  回调函数和事件更合理更强大
        // 简单说就是一个容器，保存未来才会结束的事件的结果
        // 从语法上说，Promise是一个对象，从它可以获取异步操作的消息
        let promise = new Promise((resolve, reject) => {
            if (true) {
                // 将参数返回，供then方法使用
                resolve("gelai")
            } else {
                // 将参数返回，供then方法使用
                reject("error")
            }
        })
        promise.then(
                res => {
                    //resolved时调用 ，res为resolve函数返回的参数
                    console.log(res)
                },
                err => {
                    //rejected时调用 ，res为reject函数返回的参数
                    console.log(err)
                }
            )
            // Promise新建后会立即执行
            // 状态变为fulfilled或rejected then方法绑定的处理方法才会被调用

        // async function 定义一个异步函数
        // 异步函数可能包括await表达式，这将会使异步函数暂停执行 等待promise解析传值后继续执行
        // await 返回promise的解析值，如果不是promise,则返回值本身
    </script>
</body>

</html>